package com.love.marriage.userInfo.vo;

import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.love.marriage.config.Long2StringSerializer;
import com.love.marriage.identityVerification.vo.IdentityVerificationVo;
import com.love.marriage.matchmakerInfo.vo.MatchmakerInfoVo;
import com.love.marriage.offlineServiceProvider.vo.OfflineServiceProviderVo;
import com.love.marriage.userMembershipInfo.vo.UserMembershipInfoVo;
import com.love.marriage.userProfileInfo.vo.UserProfileInfoVo;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;

import java.time.LocalDateTime;

@Data
@Schema(name = "MemberAboutVo", description = "会员、红娘、合伙人信息")
public class MemberAboutVo {

    @Schema(name = "id", description ="id", type = "Long", implementation = Long.class)
    @JsonSerialize(using = Long2StringSerializer.class)
    private Long id;

    @Schema(name = "code", description ="编码", type = "String", implementation = String.class)
    private String code;

    @Schema(name = "phone", description ="电话", type = "String", implementation = String.class)
    private String phone;

    @Schema(name = "startTime", description ="开始时间", type = "LocalDateTime", implementation = LocalDateTime.class)
    private LocalDateTime startTime;

    @Schema(name = "membershipFlag", description ="会员标识", type = "Boolean", implementation = Boolean.class)
    private Boolean membershipFlag;

    @Schema(name = "membershipName", description ="会员类型名称", type = "String", implementation = String.class)
    private String membershipName;

    @Schema(name = "matchmakerFlag", description ="红娘标识", type = "Boolean", implementation = Boolean.class)
    private Boolean matchmakerFlag;

    @Schema(name = "partnerFlag", description ="合伙人标识", type = "Boolean", implementation = Boolean.class)
    private Boolean partnerFlag;

    @Schema(name = "partnerType", description ="合伙人类型", type = "String", implementation = String.class)
    private String partnerType;

    @Schema(name = "partnerCategoryName", description ="合伙人类型名称", type = "String", implementation = String.class)
    private String partnerCategoryName;

    @Schema(description = "用户会员", type = "IdentityVerificationVo", implementation = UserMembershipInfoVo.class)
    private UserMembershipInfoVo userMembershipInfoVo;

    @Schema(description = "红娘", type = "MatchmakerInfoVo", implementation = MatchmakerInfoVo.class)
    private MatchmakerInfoVo matchmakerInfoVo;

    @Schema(description = "合伙人", type = "OfflineServiceProviderVo", implementation = OfflineServiceProviderVo.class)
    private OfflineServiceProviderVo offlineServiceProviderVo;

    @Schema(description = "身份信息", type = "IdentityVerificationVo", implementation = IdentityVerificationVo.class)
    private IdentityVerificationVo identityVerificationVo;

    @Schema(description = "用户资料信息", implementation = UserProfileInfoVo.class)
    private UserProfileInfoVo userProfileInfoVo;
}